package com.ross.mode.factory;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * @version 1.0.0
 * @className: JDKProxy
 * @description: 这里主要的作用就是完成代理类，同时对于使用哪个集群有外部通过入参进行传递。
 * @author: zhangjunfa
 * @date: 2023/3/30 16:10
 */
public class JDKProxy {

    public static <T> T getProxy(Class<T> interfaceClass,ICacheAdapter cacheAdapter){
        InvocationHandler handler=new JDKInvocationHandler(cacheAdapter );
        ClassLoader classLoader=Thread.currentThread().getContextClassLoader();
        Class<?>[] classes=interfaceClass.getInterfaces();
        return (T) Proxy.newProxyInstance(classLoader,new Class[]{classes[0]},handler);

    }

}
